--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 48b7def004f11b384bacbdd114bb7a3d2d5c5bd4
Parents : 8c5a68a
Author : Sudo-Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-01-03T21:36:47-06:00
fix(schema.py): ensure cursor is closed after executing PRAGMA table_info to prevent resource leaks
Changes
Diff
diff --git a/meshchatx/src/backend/database/schema.py b/meshchatx/src/backend/database/schema.py
index 013ac1fb..a53b3981 100644
--- a/meshchatx/src/backend/database/schema.py
+++ b/meshchatx/src/backend/database/schema.py
@@ -19,8 +19,11 @@ class DatabaseSchema:
"""Add a column to a table if it doesn't exist."""
# First check if it exists using PRAGMA
cursor = self.provider.connection.cursor()
- cursor.execute(f"PRAGMA table_info({table_name})")
- columns = [row[1] for row in cursor.fetchall()]
+ try:
+ cursor.execute(f"PRAGMA table_info({table_name})")
+ columns = [row[1] for row in cursor.fetchall()]
+ finally:
+ cursor.close()
if column_name not in columns:
try:
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────